//与第三个练习类似，但是这一个函数接受第二个参数来约束最大的字符数
/* Programming Exercise 11-3 */
#include <stdio.h>
#define LEN 80
#define key 5
char* getword(char* str,int mun);
int main(void)
{
	char input[LEN];

	while (getword(input,key) != NULL)//这里的语句使程序可以不断输入。
		puts(input);
	puts("Done.\n");

	return 0;
}
#include <ctype.h>
char* getword(char* str,int mun)
{
	int ch;
	char* orig = str;
	int count=1;
	// skip over initial whitespace
	while ((ch = getchar()) != EOF && isspace(ch))
		continue;
	if (ch == EOF)
		return NULL;
	else
		*str++ = ch; // first character in word
	   // get rest of word
	while ((ch = getchar()) != EOF && !isspace(ch)&&count<=key-1)
	{
		*str++ = ch;
		count++;
	}
	*str = '\0';
	if (ch == EOF)//eof是一个文件或字符串结束的标识符
		return NULL;//null是指针结束的标识符
	else
	{
		while (ch != '\n')
			ch = getchar();
		return orig;//这个返回值与上面的orig赋值只是为了方便回到input的第一个元素的位置。
	}
}